home *** CD-ROM | disk | FTP | other *** search
- /*
- *
- * PPCGlue.c -- based on the Quicktime Tech Note 05
- *
- * Mark Anderson
- * metrowerks
- * 12/1/94
- *
- */
-
- #include "MathComponent.h"
- #include "MathComponentPrivate.h"
- #include "MoMathComponent.h"
- #include "MoMathComponentPrivate.h"
- #include "NuMathComponentPrivate.h"
- #include <Menus.h>
- #include <Windows.h>
- #include <QuickDraw.h>
- #include <OSEvents.h>
- #include <Resources.h>
- #include <Desk.h>
- #include <Fonts.h>
- #include <ToolUtils.h>
-
-
- enum {
- uppCallComponentProcInfo = kPascalStackBased
- | RESULT_SIZE(kFourByteCode)
- | STACK_ROUTINE_PARAMETER(1, kFourByteCode)
- };
-
- pascal ComponentResult DoDivide (MathComponent mathInstance,
- short numerator,
- short denominator,
- short *result)
- {
- #define kDoDivideParamSize (sizeof (DoDivideParams))
- #ifdef powerc
- #pragma options align=mac68k
- #endif
- struct DoDivideParams {
- short *result;
- short denominator;
- short numerator;
- };
- typedef struct DoDivideParams DoDivideParams;
- struct DoDivideGluePB {
- unsigned char componentFlags; /* Flags - set to zero */
- unsigned char componentParamSize; /* Size of the params struct */
- short componentWhat; /* The component request selector */
- DoDivideParams params; /* The parameters, see above */
- ComponentInstance instance; /* This component instance */
- };
- typedef struct DoDivideGluePB DoDivideGluePB;
- #ifdef powerc
- #pragma options align=reset
- #endif
- DoDivideGluePB myDoDivideGluePB;
- myDoDivideGluePB.componentFlags = 0;
- myDoDivideGluePB.componentParamSize = kDoDivideParamSize;
- myDoDivideGluePB.componentWhat = kDoDivideSelect;
- myDoDivideGluePB.params.result = result;
- myDoDivideGluePB.params.denominator = denominator;
- myDoDivideGluePB.params.numerator = numerator;
- myDoDivideGluePB.instance = (ComponentInstance)mathInstance;
- return CallUniversalProc(CallComponentUPP,
- uppCallComponentProcInfo, &myDoDivideGluePB);
- }
-
- pascal ComponentResult DoMultiply (MathComponent mathInstance,
- short firstNum,
- short secondNum,
- short *result)
- {
- #define kDoMultiplyParamSize (sizeof (DoMultiplyParams))
- #ifdef powerc
- #pragma options align=mac68k
- #endif
- struct DoMultiplyParams {
- short *result;
- short secondNum;
- short firstNum;
- };
- typedef struct DoMultiplyParams DoMultiplyParams;
- struct DoMultiplyGluePB {
- unsigned char componentFlags; /* Flags - set to zero */
- unsigned char componentParamSize; /* Size of the params struct */
- short componentWhat; /* The component request selector */
- DoMultiplyParams params; /* The parameters, see above */
- ComponentInstance instance; /* This component instance */
- };
- typedef struct DoMultiplyGluePB DoMultiplyGluePB;
- #ifdef powerc
- #pragma options align=reset
- #endif
- DoMultiplyGluePB myDoMultiplyGluePB;
- myDoMultiplyGluePB.componentFlags = 0;
- myDoMultiplyGluePB.componentParamSize = kDoMultiplyParamSize;
- myDoMultiplyGluePB.componentWhat = kDoMultiplySelect;
- myDoMultiplyGluePB.params.result = result;
- myDoMultiplyGluePB.params.secondNum = secondNum;
- myDoMultiplyGluePB.params.firstNum = firstNum;
- myDoMultiplyGluePB.instance = (ComponentInstance)mathInstance;
- return CallUniversalProc(CallComponentUPP,
- uppCallComponentProcInfo, &myDoMultiplyGluePB);
- }
-
- pascal ComponentResult DoAdd (MathComponent mathInstance,
- short firstNum,
- short secondNum,
- short *additionResult)
-
- {
- #define kDoAddParamSize (sizeof (DoAddParams))
- #ifdef powerc
- #pragma options align=mac68k
- #endif
- struct DoAddParams {
- short *additionResult;
- short secondNum;
- short firstNum;
- };
- typedef struct DoAddParams DoAddParams;
- struct DoAddGluePB {
- unsigned char componentFlags; /* Flags - set to zero */
- unsigned char componentParamSize; /* Size of the params struct */
- short componentWhat; /* The component request selector */
- DoAddParams params; /* The parameters, see above */
- ComponentInstance instance; /* This component instance */
- };
- typedef struct DoAddGluePB DoAddGluePB;
- #ifdef powerc
- #pragma options align=reset
- #endif
- DoAddGluePB myDoAddGluePB;
- myDoAddGluePB.componentFlags = 0;
- myDoAddGluePB.componentParamSize = kDoAddParamSize;
- myDoAddGluePB.componentWhat = kDoAddSelect;
- myDoAddGluePB.params.additionResult = additionResult;
- myDoAddGluePB.params.secondNum = secondNum;
- myDoAddGluePB.params.firstNum = firstNum;
- myDoAddGluePB.instance = (ComponentInstance)mathInstance;
- return CallUniversalProc(CallComponentUPP,
- uppCallComponentProcInfo, &myDoAddGluePB);
- }
-